Input box در اکسل به همراه مثال های کاربردی
در این آموزش از سری آموزش های سایت سافت پلاس می خواهیم در خصوص Input box در اکسل با هم صحبت کنیم.
در این آموزش یاد خواهیم گرفت که یک input box را بطور کامل و البته با دو روش کاملا مجزا از هم ایجاد کنیم .
با کارایی های یک input box آشنا می شویم.
یاد خواهیم گرفت که چگونه تنظیمات مربوط به یک input box را انجام دهیم .
یاد خواهیم گرفت که چگونه مقادیر مورد نیاز خود را در قالب یک input box از کاربر دریافت کرده و در انتها چگونه از این مقادیر استفاده کنیم .
ما برای اینکه کار با این قابلیت را در اکسل بطور کامل توضیح دهیم به سراغ مثال هایی کاملا عملی و کاربردی رفته و با هم مثال های متعددی را بررسی خواهیم کرد .
در انتهای این مطلب شما به نقطه ای خواهید رسید که بطور کامل در موارد زیر به سطح مهارتی بالایی دست پیدا کنید :
۱- خیلی خوب با مفهوم input box آشنا می شوید .
۲- به خوبی خواهید دانست که در کجاها می توانید از یک input box استفاده کنید .
۳- به راحتی خواهید توانست یک input box را ایجاد کرده و تنظیمات مربوط را آن را انجام دهید .
۴- در نهایت هم می توانید با اطلاعاتی که از یک input box دریافت می کنید کار کرده و از آنها در پروژه خود استفاده کنید .
پس تا پایان این مطلب همراه من باشید .
مطلب مرتبط:تابع سفارشی در اکسل ؛ چی هست؟ چطور آن را ایجاد کنیم ؟
مفهوم Input box در اکسل چیست؟
در اولین قدم باید با خود input box آشنا شویم .
input box یکی از توابع داخلی موجود در محیط برنامه نویسی VBA می باشد .
در واقع هر جا که نیاز باشد که از کاربر اطلاعاتی را دریافت کنیم از راههای مختلفی می توانیم این کار را انجام دهیم .
بعنوان مثال تکس باکس ها یکی از این راهها می باشد که کاربر می تواند اطلاعات خود را در آن وارد کند .
و یا کمبو باکس ها و حتی چک باکس ها و دکمه های رادیویی یا همان Radio Button هم می تواند به نحوی برای دریافت اطلاعات ما بعنوان یک برنامه نویسی از کاربر کمک کنند .
خوب در این بین input box ها هم یکی از قابلیت هایی هستند که به کمک آنها می توانیم اطلاعات مورد نظر خود را از کاربر دریافت کنیم .
یک input box را به نحوی می توان هم خانواده message box ها دانست .
این دو با هم شباهت ها و در عین حال تفاوت هایی هم دارند .
مهمترین شباهت بین این ذو این است که با استفاده از هر دوی اینها می توانیم یک متن را در قالب یک پیغام به کاربر خود نمایش دهیم .
اما تفاوت آنها در چیست ؟
مهمترین تفاوت بین یک input box و یک Message box که در واقع باعث تغییر در عملکرد و ماهیت آنها می شود این است که یک input box علاوه بر اینکه می تواند یک پیغام را به کاربر نمایش دهد می تواند یک مقدار را نیز از کاربر دریافت کنید .
امکانی که در یک کادر پیغام یا همانMessage box وجود ندارد .
در خصوص Message box در اکسل ما قبلا مفصلا در مطلب جداگانه ای صحبت کرده و مسائل و موارد مربوط به انها را مورد بررسی قرار دادیم .
اگر علاقمند به مطالعه این مطلب هستید می توانید با کلیک بر روی لینک زیر به مطلب مذکور دسترسی پیدا کنید .
مطلب مرتبط : آشنایی با Message box در محیط کاری اکسل
اما امروز می خواهیم راجع به input box در اکسل با هم صحبت کنیم .
اول ببینیم که چگونه می توانیم یک input box را ایجاد کنیم .
روش های ایجاد یک input box در نرم افزار اکسل
ما در اکسل به دو طریق می توانیم یک input box را ایجاد کنیم .
روش اول استفاده از تابعی است به همین نام یعنی تابع input box.
برای این منظور کافی است که در محیط کد نویسی خود این تابع را فراخوانی کنیم .
وقتی که نام این تابع را در محیط برنامه نویسی خود درج می کنیم بعد از درج اولین پرانتز آرگومان های مربوط به این تابع برای ما به نمایش در می آید .
ما باید مقادیر مربوط به هر آرگومان را تنظیم کنیم .
اما اول باید با هر کدام از این ورودی ها آشنا شویم .
آرگومان اول : Prompt
این آرگومان از نوع متن است .
با استفاده از این آرگومان ما می توانیم کاری را که از کاربر انتظار داریم تا برای ما انجام دهد را در قالب یک پیغام به وی نمایش دهیم .
آرگومان دوم: Title
با استفاده از این آرگومان می توانیم عنوان input box خود را به کاربر نمایش دهیم .
آرگومان سوم : Default
با استفاده از این آرگومان می توانیم یک مقدار پیشفرض را برای input box خود در نظر بگیریم .
آرگومان جهارم : Xpos
این آرگومان موقعیت نمایش input box ما در محور طولی یا همان محور X تعیین می کند .
آرگومان پنجم : Ypos
این آرگومان موقعیت نمایش input box ما در محور عرضی یا همان محور Y تعیین می کند .
آرگومان ششم: Helpfile .
این \پارامتر وقتی به کار می آید که ما یک فایل راهنما را برای کادر خود طراحی و ایجاد کرده ایم.
آرگومان هفتم : context .
این پارامتر وقتی کاربرد پیدا می کند که آرگومان قبلی را تنظیم کرده باشیم .
در اینجا با تمامی پارامترها و آرگومانهای این تابع آشنا شدیم .
اما یک نکته مهم را باید یادآوری کنم .
در بین تمامی این پارامترهایی که در مورد این تابع با هم بررسی کردیم فقط وجود و تنظیم پارامتر اول برای اینکه این تابع بتواند کار خود را آغاز کند کفایت می کند .
یعنی اگر برای سایر پارامترها ما مقداری را تعیین نکنیم برنامه بطور خودکار از مقادیر پیشفرض برای هر پارامتر استفاده کرده و تابع ما را اجرا خواهد کرد .
حال که با پارامترها و ویژگی های مربوط به این تابع آشنا شدیم برویم به سراغ استفاده از آنها و ایجاد یک Inputbox با استفاده از هرکدام از آنها .
اجازه دهید از این جا به بعد کار را پروژه محور پیش ببریم .
برای نمونه می خواهیم یک Inputbox را ایجاد کرده و از کاربر بخواهیم که سال تولد خود را برای ما وارد کند.
در مرحله بعد ما با استفاده از یک محاسبه ساده که در داخل برنامه خود انجام می دهیم سال تولد داده شده را به سال میلادی تبدیل می کنیم .
در انتها هم عدد حاصل را در قالب یک کادر پیغام یا msgbox به کاربر نمایش می دهیم .
پس کار را باهم شروع می کنیم
ایجاد input box توسط برنامه نویسی .
ما در کدهای زیر یک کادر input box را با استفاده از پارامترهایی که باید تعریف کرده ایم .
() Sub testinputbox Dim i As Integer Dim result as integer (۱۳۷۰," تبدیل سال شمسی به میلادی ","لطفا سال تولد خود را وارد کنید "InputBox End Sub
ما در خط اول از این کدها یک متغیر به نام i تعریف کرده ایم .
اما چه نیازی به این متغیر داریم ؟ .
ما با استفاده از این متغیر می توانیم هر عددی را که کاربر وارد کرد را دریافت کرده و در حافظه کامپیوتر ذخیره کنیم .
در مرحله بعد محاسبات خود را بر روی این عدد انجام می دهیم .
حال این محاسبات چه هستند .
در خط بعدی هم متغیر result را تعریف کردیم . این متغیر نتیجه محاسبات را برای ما ذخیره خواهد کرد .
در مورد خود تابع موارد زیر را لحاظ کرده ایم :
– ما در اینجا فقط از سه آرگومان از مجموعه ۷ آرگومان تابع استفاده کرده ایم .مابقی آرگومانها را خالی گذاشته ایم .
– متن اول همان کاری است که از کاربر انتظار داریم که برای ما انجام دهد .
– متن دوم شامل عنوان کادری است که به کاربر نمایش داده می شود .
در بخش سوم هم یک عدد را وارد کرده ایم .
این عدد مقداری پیشفرض است که برای برنامه مشخص کرده ایم .
در واقع اگر کاربر هیچ عددی را وارد نکند برنامه این عدد را مبنا قرار داده و عملیات خود را ادامه می دهد .
اگر تا به همین جا کدهای خود را اجرا کنیم نتیجه کادر شبیه تصویر زیر خواهد شد .
تا اینجای کار ما یک Input box را ایجاد کرده و یک عدد را نیز از کاربر دریافت کرده ایم .
حالا باید به سراغ محاسبات برویم .
برای تبدیل عدد شمسی به میلادی از فرمول زیر در کدهای خود استفاده می کنیم .
Result = i + 622
یعنی هر عدد را که از کاربر بعنوان سال تولد دریافت کردیم را با عدد ۶۲۲ جمع می کنیم .
حاصل این عبارت را در متغیر Result ذخیره می کنیم .
در مرحله آخر هم نتیجه حاصل را که در داخل متغیر Result ذخیره کرده ایم را به کاربر نمایش می دهیم .
برای این کار از کد زیر استفاده می کنیم .
Result &"سال تولد شما به میلادی " MsgBox
در اینجا کار ما تمام می شود .
یعنی از کاربر یک عدد را در داخل input box خود دریافت کردیم و با انجام محاسباتی آن را تبدیل به سال میلادی کرده و در قالب یک کادر پیغام یا msgbox نتیجه را در اختیار کاربر قرار دادیم .
پس ما در اینجا با موفقیت کار بر روی یک Input mask را به سرانجام رساندیم .
حالا به بررسی مسائل بیشتر در این مورد می پردازیم .
می خواهیم چند سوال را مطرح و با هم به پاسخ آنها برسیم .
سوال اول : چگونه متن پیغام خود را در دو خط مجزا از هم بنویسیم ؟.
در مرحله قبل ما کادری را ایجاد کردیم که حاوی یک خط پیغام بود .
اما اگر بخواهیم خط دوم و یا سومی را برای کادر خود در نظر بگیریم چه باید بکنیم ؟
خوب برای این منظور می توانیم از کدهای زیر استفاده کنیم .
همانطور که می بینید ما در اینجا از یک ثابت به نام vbcrlf استفاده کردیم .
کافی است قبل از هر نوشته ای که می خواهید در خط جدید نمایش داده شود از این ثابت استفاده کنید .
نتیجه و خروجی کد بالا برای ما مثل تصویر زیر خواهد بود .
سوال دوم : چگونه کنترل کنیم که کاربر مقادیر اشتباهی را وارد نکند ؟.
ما در مثال قبلی از کاربر می خواهیم که سال تولد خود را وارد کند .
برای ما مهم است که کاربر اطلاعات درست را وارد کند .
این سال تولد باید دارای شرایط زیر باشد .
اول اینکه حتما بصورت ۴ رقم باشد .
دوم اینکه حتما باید در قالب اعداد باشد یعنی اگر کاربر مقدار متنی را وارد کند باید برنامه ما قادر به تشخیص آن باشد در غیر اینصورت محاسبات ما دچار خطا خواهد شد .
خوب برای این کار هم باید از کد نویسی VBA استفاده کنیم .
اول می خواهیم کنترل کنیم که کاربر حتما سال تولد خود را بصورت ۴ رقم وارد کند .
برای این منظور از کدهای زیر استفاده می کنیم .
If Len(i) <> 4 Then "لطفا سال تولد را بصورت ۴ رقمی وارد کنید" MsgBox End If Exit Sub
با استفاده از این کدها تعیین می کنیم که اگر کاربر مقدار سال تولد خود را کمتر یا بیشتر از ۴ رقم وارد کند طی یک پیغام این اشتباه به اطلاع کاربر برسد .
بعد از عبارت شرطی فوق حتما باید از دستور Exit Sub استفاده کنیم تا در صورتی که عبارت شرطی فوق برقرار باشد یعنی کاربر در ورود اطلاعات در این بخش دچار خطا شود برنامه از اجرای خطوط بعدی کد منصرف شود .
حالا می خواهیم کنترل کنیم که کاربر به هیچ وجه قادر به مقادیر متنی در کادر ما نباشد .
این آموزش به تدریج تکمیل خواهد شد ……………
دیدگاهتان را بنویسید